Next: Incbin, Previous: Ident, Up: Pseudo Ops [Contents][Index]

### 7.62 `.if absolute expression`

`.if` marks the beginning of a section of code which is only considered part of the source program being assembled if the argument (which must be an absolute expression) is non-zero. The end of the conditional section of code must be marked by `.endif` (see `.endif`); optionally, you may include code for the alternative condition, flagged by `.else` (see `.else`). If you have several conditions to check, `.elseif` may be used to avoid nesting blocks if/else within each subsequent `.else` block.

The following variants of `.if` are also supported:

`.ifdef symbol`

  Assembles the following section of code if the specified symbol has been defined. Note a symbol which has been referenced but not yet defined is considered to be undefined.

`.ifb text`

  Assembles the following section of code if the operand is blank (empty).

`.ifc string1,string2`

  Assembles the following section of code if the two strings are the same. The strings may be optionally quoted with single quotes. If they are not quoted, the first string stops at the first comma, and the second string stops at the end of the line. Strings which contain whitespace should be quoted. The string comparison is case sensitive.

`.ifeq absolute expression`

  Assembles the following section of code if the argument is zero.

`.ifeqs string1,string2`

  Another form of `.ifc`. The strings must be quoted using double quotes.

`.ifge absolute expression`

  Assembles the following section of code if the argument is greater than or equal to zero.

`.ifgt absolute expression`

  Assembles the following section of code if the argument is greater than zero.

`.ifle absolute expression`

  Assembles the following section of code if the argument is less than or equal to zero.

`.iflt absolute expression`

  Assembles the following section of code if the argument is less than zero.

`.ifnb text`

  Like `.ifb`, but the sense of the test is reversed: this assembles the following section of code if the operand is non-blank (non-empty).

`.ifnc string1,string2.`

  Like `.ifc`, but the sense of the test is reversed: this assembles the following section of code if the two strings are not the same.

`.ifndef symbol`
`.ifnotdef symbol`

  Assembles the following section of code if the specified symbol has not been defined. Both spelling variants are equivalent. Note a symbol which has been referenced but not yet defined is considered to be undefined.

`.ifne absolute expression`

  Assembles the following section of code if the argument is not equal to zero (in other words, this is equivalent to `.if`).

`.ifnes string1,string2`

  Like `.ifeqs`, but the sense of the test is reversed: this assembles the following section of code if the two strings are not the same.

Next: Incbin, Previous: Ident, Up: Pseudo Ops [Contents][Index]